<?php // Eugenio Ghiglia <eugenio@blux.org>

    session_start();
    date_default_timezone_set('Europe/Rome');
    
    include("./lib/lib.framework.php");
    include("./lib/class.autokeyword.php");
    include("./settings.php");
   
    ////////////////////////////////
    // Accesso al database
    require_once("./lib/class.db.php");
    $db = new Db();
    $db->type='mysql';
    $db->error_off();
    if (!$db->connetti($_db_host, $_db_user, $_db_psw, $_db_name)) {
        header('HTTP/1.1 503 Service Temporarily Unavailable');
        header('Status: 503 Service Temporarily Unavailable');
        header('Retry-After: 1800'); // in seconds
        die('<html><body><div style="text-align:center;margin-top:10%"><b>'.strtoupper($_SERVER['SERVER_NAME']).'</b><br/><br/><span style="color:#FF0000;">Per problemi di connessione al database degli annunci</span><br/> il servizio al momento non &egrave; disponibile.<br/><br/>Ci scusiamo per il disagio.</div></body></html>');
    } else {
        // *** caricamento della configurazione ***
        if (!$_SESSION['CONFIG']['LOAD']) {
            $sql="SELECT * FROM tbl_config";
            $db->sql_arr($sql,$record,$n);
            for ($i=0;$i<$n;$i++) {
			 $_SESSION['CONFIG'][$record[$i]['parametro']]=$record[$i]['valore'];
			}
            $_SESSION['CONFIG']['LOAD']=true;
        }
    }
    //
    ////////////////////////////////
    
    
    ////////////////////////////////
    // visualizzazione errori in PHP
    if ($_SESSION['CONFIG']['DEBUG']) {
        error_reporting(E_ALL ^ E_NOTICE); //modo sviluppo
        $db->error_on();
    } else {
        error_reporting(0);                //modo produzione
        $db->error_off();
    }
    //
    ////////////////////////////////
    
    ////////////////////////////////
    // CRON JOB
    include('./lib/lib.cron.php');
    // *** report giornaliero annunci ***
    _cron_admin_report();
    
    // *** cancella da /uploads i file + vecchi di 2 giorni ***
    _cron_clean_uploads();
    
        // *** pubblicazione annunci ***
    _cron_pubblicazione_annunci();
    
        // *** scadenza annunci ***
    _cron_scadenza_annunci();
    
    // *** report giornaliero errori e warning ***
    _cron_admin_log_report();
    //
    ////////////////////////////////
    

    ////////////////////////////////
    // gestione dei super_array 
    // _GET e _POST
    $_SESSION["GET"]  = $_GET;
    $_SESSION["POST"] = $_POST;
    //
    ////////////////////////////////
    
    
    ////////////////////////////////
    // Logout
    if ($_GET['logout']) {
        $_SESSION['LOGGED']=0;
    }
    //
    ////////////////////////////////
    
    
    ////////////////////////////////
    // Login
    if ($_POST['login_ticket'] && $_POST['login_email'] && $_POST['login_password']) {
        require_once('./lib/lib.login.php');
        $_SESSION['LOGGED']=_login($_POST['login_email'],$_POST['login_password']);
    }
    //
    ////////////////////////////////


    //////////////////////////////
    // Logging
    if ($_SESSION['CONFIG']['LOG']) {
        require("./lib/class.log.php");
        $log = new Log();
        $log->path_log("./log");
        $log->utente=$_SERVER['SERVER_NAME'];
        // logging della richiesta
        if (isset($_SERVER["HTTP_X_REWRITE_URL"]))
            $log->info("GET: ".$_SERVER["HTTP_X_REWRITE_URL"]."|".$_SERVER["HTTP_USER_AGENT"]);
        else 
            $log->info("GET: ".$_SERVER["REQUEST_URI"]."|".$_SERVER["HTTP_USER_AGENT"]);
    }
    //
    //////////////////////////////
    
    //////////////////////////////
    // rendering della pagina
    //
    include('./lib/lib.utenti.php');
    include('./lib/lib.annunci.php');
    include('./lib/lib.gallery.php');
    
    $open=str_replace('/','',$_GET['open']);
    
    if (!$open) $open='index';
    if (!file_exists('./pages/'.$open.'.php')) {
        header("HTTP/1.0 404 Not Found");
        $open='404';
    }
    
    // *** utilizzo di layout differenti ***
    if ($_layout[$open]) {
        require('./layouts/'.$_layout[$open].'.php');
    } else {
        require('./layouts/layout.php');
    }
    $pagina=$layout;

    include('./pages/'.$open.'.php');

    $pagina=str_replace("^html^", $html, $pagina);
    $pagina=str_replace("^title^", (($_title)?$_title:$_SESSION['CONFIG']['TITLE']), $pagina);
    $pagina=str_replace("^description^", (($_description)?$_description:''), $pagina);
    $pagina=str_replace("^keywords^", (($_keywords)?$_keywords:''), $pagina);
    $pagina=str_replace("^mail^", $_SESSION['CONFIG']['MAIL_REF'], $pagina);
    
    // *** key indici i e j ***
    $index_i=0;
    $index_count=0;
    $pagina=str_replace ("^i^","^i^",$pagina,$index_count);
    for ($i=0;$i<$index_count;$i++) {$pagina=substr_replace($pagina,$i,stripos($pagina,"^i^"),3);}
    $index_j=0;
    $index_count=0;
    $pagina=str_replace ("^j^","^j^",$pagina,$index_count);
    for ($i=0;$i<$index_count;$i++) {$pagina=substr_replace($pagina,$i,stripos($pagina,"^j^"),3);}

         // *** extra keywords ***
         if (@file_exists("./code.php")) {
            include("./code.php");
            foreach($function_key as $k => $v) {
                $pagina=str_replace($k, eval($v), $pagina);
            }   
         }

    if ($_SESSION['CONFIG']['DEBUG']) {
        $html_debug="\n\n<!-- SESSION: ".session_id()."\n\n";
        $html_debug.="HTTP_X_REWRITE_URL: ".$_SERVER["HTTP_X_REWRITE_URL"]."\n\n";
        $html_debug.="URL: ".$_SERVER["URL"]."\n\n";
        $html_debug.="_GET ".print_r($_GET,1)."\n";
        $html_debug.="_POST ".print_r($_POST,1)."\n";
        $html_debug.="-->";
        $pagina.=$html_debug;
    }

    echo $pagina;
    //
    //////////////////////////////

    if ($db_attivo) $db->disconnetti();
?>
